package com.xuelang.pipeline.domain.application.service;

import com.xuelang.pipeline.client.application.dto.TraitQuery;
import com.xuelang.pipeline.client.common.result.PageRecord;
import com.xuelang.pipeline.domain.application.Trait;

import java.util.List;

/**
 * 运维特征领域服务类
 *
 * @author xiwen.zxg
 * @since 2024/5/15
 */
public interface TraitDomainService {
    /**
     * 获取运维特征列表，有过滤条件
     *
     * @param currentPage
     * @param pageSize
     * @param traintQuery
     * @return
     */
    PageRecord<Trait> pageList(long currentPage, long pageSize, TraitQuery traintQuery);
    /**
     * 获取运维特征列表，有过滤条件
     *
     * @param traintQuery
     * @return
     */
    List<Trait> list(TraitQuery traintQuery);

    /**
     * 新增运维特征
     *
     * @param traint
     * @return
     */
    Boolean save(Trait traint);

    /**
     * 更新运维特征
     *
     * @param traint
     * @return
     */
    Boolean update(Trait traint);
    /**
     * 删除运维特征
     *
     * @param traint
     * @return
     */
    Boolean delete(Trait traint);
    /**
     * 查询运维特征
     *
     * @param trait
     * @return
     */
    Trait query(Trait trait);

    /**
     * 根据组件标签删除运维特征
     *
     * @param componentLabel
     * @return
     */
    Boolean deleteByComponentLabel(String componentLabel);
}
